package com.appkubes.mall.core.pojo;

import com.appkubes.mall.core.po.FintechUserJob;
import com.appkubes.mall.core.po.FintechUserJobExample;
import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.DeleteProvider;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.InsertProvider;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.Update;
import org.apache.ibatis.annotations.UpdateProvider;
import org.apache.ibatis.session.RowBounds;
import org.apache.ibatis.type.JdbcType;

public interface FintechUserJobMapper {
    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user_job
     *
     * @mbg.generated
     */
    @SelectProvider(type=FintechUserJobSqlProvider.class, method="countByExample")
    long countByExample(FintechUserJobExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user_job
     *
     * @mbg.generated
     */
    @DeleteProvider(type=FintechUserJobSqlProvider.class, method="deleteByExample")
    int deleteByExample(FintechUserJobExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user_job
     *
     * @mbg.generated
     */
    @Delete({
        "delete from fintech_user_job",
        "where user_key = #{userKey,jdbcType=VARCHAR}"
    })
    int deleteByPrimaryKey(String userKey);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user_job
     *
     * @mbg.generated
     */
    @Insert({
        "insert into fintech_user_job (user_key, industry, ",
        "job, monthly_income, ",
        "pay_day, employer, ",
        "employer_province, employer_city, ",
        "employer_district, employer_address, ",
        "employer_phone1, employer_phone2, ",
        "is_delete, creator, ",
        "create_time, updater, ",
        "update_time, version)",
        "values (#{userKey,jdbcType=VARCHAR}, #{industry,jdbcType=VARCHAR}, ",
        "#{job,jdbcType=VARCHAR}, #{monthlyIncome,jdbcType=VARCHAR}, ",
        "#{payDay,jdbcType=VARCHAR}, #{employer,jdbcType=VARCHAR}, ",
        "#{employerProvince,jdbcType=VARCHAR}, #{employerCity,jdbcType=VARCHAR}, ",
        "#{employerDistrict,jdbcType=VARCHAR}, #{employerAddress,jdbcType=VARCHAR}, ",
        "#{employerPhone1,jdbcType=VARCHAR}, #{employerPhone2,jdbcType=VARCHAR}, ",
        "#{isDelete,jdbcType=TINYINT}, #{creator,jdbcType=VARCHAR}, ",
        "#{createTime,jdbcType=TIMESTAMP}, #{updater,jdbcType=VARCHAR}, ",
        "#{updateTime,jdbcType=TIMESTAMP}, #{version,jdbcType=VARCHAR})"
    })
    int insert(FintechUserJob record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user_job
     *
     * @mbg.generated
     */
    @InsertProvider(type=FintechUserJobSqlProvider.class, method="insertSelective")
    int insertSelective(FintechUserJob record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user_job
     *
     * @mbg.generated
     */
    @SelectProvider(type=FintechUserJobSqlProvider.class, method="selectByExample")
    @Results({
        @Result(column="user_key", property="userKey", jdbcType=JdbcType.VARCHAR, id=true),
        @Result(column="industry", property="industry", jdbcType=JdbcType.VARCHAR),
        @Result(column="job", property="job", jdbcType=JdbcType.VARCHAR),
        @Result(column="monthly_income", property="monthlyIncome", jdbcType=JdbcType.VARCHAR),
        @Result(column="pay_day", property="payDay", jdbcType=JdbcType.VARCHAR),
        @Result(column="employer", property="employer", jdbcType=JdbcType.VARCHAR),
        @Result(column="employer_province", property="employerProvince", jdbcType=JdbcType.VARCHAR),
        @Result(column="employer_city", property="employerCity", jdbcType=JdbcType.VARCHAR),
        @Result(column="employer_district", property="employerDistrict", jdbcType=JdbcType.VARCHAR),
        @Result(column="employer_address", property="employerAddress", jdbcType=JdbcType.VARCHAR),
        @Result(column="employer_phone1", property="employerPhone1", jdbcType=JdbcType.VARCHAR),
        @Result(column="employer_phone2", property="employerPhone2", jdbcType=JdbcType.VARCHAR),
        @Result(column="is_delete", property="isDelete", jdbcType=JdbcType.TINYINT),
        @Result(column="creator", property="creator", jdbcType=JdbcType.VARCHAR),
        @Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="updater", property="updater", jdbcType=JdbcType.VARCHAR),
        @Result(column="update_time", property="updateTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="version", property="version", jdbcType=JdbcType.VARCHAR)
    })
    List<FintechUserJob> selectByExampleWithRowbounds(FintechUserJobExample example, RowBounds rowBounds);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user_job
     *
     * @mbg.generated
     */
    @SelectProvider(type=FintechUserJobSqlProvider.class, method="selectByExample")
    @Results({
        @Result(column="user_key", property="userKey", jdbcType=JdbcType.VARCHAR, id=true),
        @Result(column="industry", property="industry", jdbcType=JdbcType.VARCHAR),
        @Result(column="job", property="job", jdbcType=JdbcType.VARCHAR),
        @Result(column="monthly_income", property="monthlyIncome", jdbcType=JdbcType.VARCHAR),
        @Result(column="pay_day", property="payDay", jdbcType=JdbcType.VARCHAR),
        @Result(column="employer", property="employer", jdbcType=JdbcType.VARCHAR),
        @Result(column="employer_province", property="employerProvince", jdbcType=JdbcType.VARCHAR),
        @Result(column="employer_city", property="employerCity", jdbcType=JdbcType.VARCHAR),
        @Result(column="employer_district", property="employerDistrict", jdbcType=JdbcType.VARCHAR),
        @Result(column="employer_address", property="employerAddress", jdbcType=JdbcType.VARCHAR),
        @Result(column="employer_phone1", property="employerPhone1", jdbcType=JdbcType.VARCHAR),
        @Result(column="employer_phone2", property="employerPhone2", jdbcType=JdbcType.VARCHAR),
        @Result(column="is_delete", property="isDelete", jdbcType=JdbcType.TINYINT),
        @Result(column="creator", property="creator", jdbcType=JdbcType.VARCHAR),
        @Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="updater", property="updater", jdbcType=JdbcType.VARCHAR),
        @Result(column="update_time", property="updateTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="version", property="version", jdbcType=JdbcType.VARCHAR)
    })
    List<FintechUserJob> selectByExample(FintechUserJobExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user_job
     *
     * @mbg.generated
     */
    @Select({
        "select",
        "user_key, industry, job, monthly_income, pay_day, employer, employer_province, ",
        "employer_city, employer_district, employer_address, employer_phone1, employer_phone2, ",
        "is_delete, creator, create_time, updater, update_time, version",
        "from fintech_user_job",
        "where user_key = #{userKey,jdbcType=VARCHAR}"
    })
    @Results({
        @Result(column="user_key", property="userKey", jdbcType=JdbcType.VARCHAR, id=true),
        @Result(column="industry", property="industry", jdbcType=JdbcType.VARCHAR),
        @Result(column="job", property="job", jdbcType=JdbcType.VARCHAR),
        @Result(column="monthly_income", property="monthlyIncome", jdbcType=JdbcType.VARCHAR),
        @Result(column="pay_day", property="payDay", jdbcType=JdbcType.VARCHAR),
        @Result(column="employer", property="employer", jdbcType=JdbcType.VARCHAR),
        @Result(column="employer_province", property="employerProvince", jdbcType=JdbcType.VARCHAR),
        @Result(column="employer_city", property="employerCity", jdbcType=JdbcType.VARCHAR),
        @Result(column="employer_district", property="employerDistrict", jdbcType=JdbcType.VARCHAR),
        @Result(column="employer_address", property="employerAddress", jdbcType=JdbcType.VARCHAR),
        @Result(column="employer_phone1", property="employerPhone1", jdbcType=JdbcType.VARCHAR),
        @Result(column="employer_phone2", property="employerPhone2", jdbcType=JdbcType.VARCHAR),
        @Result(column="is_delete", property="isDelete", jdbcType=JdbcType.TINYINT),
        @Result(column="creator", property="creator", jdbcType=JdbcType.VARCHAR),
        @Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="updater", property="updater", jdbcType=JdbcType.VARCHAR),
        @Result(column="update_time", property="updateTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="version", property="version", jdbcType=JdbcType.VARCHAR)
    })
    FintechUserJob selectByPrimaryKey(String userKey);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user_job
     *
     * @mbg.generated
     */
    @UpdateProvider(type=FintechUserJobSqlProvider.class, method="updateByExampleSelective")
    int updateByExampleSelective(@Param("record") FintechUserJob record, @Param("example") FintechUserJobExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user_job
     *
     * @mbg.generated
     */
    @UpdateProvider(type=FintechUserJobSqlProvider.class, method="updateByExample")
    int updateByExample(@Param("record") FintechUserJob record, @Param("example") FintechUserJobExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user_job
     *
     * @mbg.generated
     */
    @UpdateProvider(type=FintechUserJobSqlProvider.class, method="updateByPrimaryKeySelective")
    int updateByPrimaryKeySelective(FintechUserJob record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user_job
     *
     * @mbg.generated
     */
    @Update({
        "update fintech_user_job",
        "set industry = #{industry,jdbcType=VARCHAR},",
          "job = #{job,jdbcType=VARCHAR},",
          "monthly_income = #{monthlyIncome,jdbcType=VARCHAR},",
          "pay_day = #{payDay,jdbcType=VARCHAR},",
          "employer = #{employer,jdbcType=VARCHAR},",
          "employer_province = #{employerProvince,jdbcType=VARCHAR},",
          "employer_city = #{employerCity,jdbcType=VARCHAR},",
          "employer_district = #{employerDistrict,jdbcType=VARCHAR},",
          "employer_address = #{employerAddress,jdbcType=VARCHAR},",
          "employer_phone1 = #{employerPhone1,jdbcType=VARCHAR},",
          "employer_phone2 = #{employerPhone2,jdbcType=VARCHAR},",
          "is_delete = #{isDelete,jdbcType=TINYINT},",
          "creator = #{creator,jdbcType=VARCHAR},",
          "create_time = #{createTime,jdbcType=TIMESTAMP},",
          "updater = #{updater,jdbcType=VARCHAR},",
          "update_time = #{updateTime,jdbcType=TIMESTAMP},",
          "version = #{version,jdbcType=VARCHAR}",
        "where user_key = #{userKey,jdbcType=VARCHAR}"
    })
    int updateByPrimaryKey(FintechUserJob record);
}